未命名
1 AI 提示词
1、一个银行业务系统后端用的是 PostgreSQL 。
2、使用 python 中的 faker 库,生成一个银行业务的办理系统的数据库。
3、并根据根据你自己的想法扩展 银行业务系统,尽可能靠近真实的业务系统,越真实越好,并给出 ER 图 还有 建表语句。并生成一个 对应的应用程序。
4、生成对应的应用程序。
5、在应用程序中 加入所有表的增删改查等操作,实现分页查询,字段查询,搜索等功能接口?
6、用 faker 自动批量生成测试数据(模拟开户、交易)
7、生成前端管理界面(Vue 或 React)
8、并给出应用程序使用方法。
我将为一个银行业务系统创建一个完整的解决方案,包括 PostgreSQL 数据库、Python/Faker 生成测试数据、FastAPI 后端和 React 前端。系统将包含真实的银行实体、增删改查操作、分页查询、字段搜索以及管理界面。以下内容将通过工件形式提供数据库模式、数据生成代码、后端和前端实现,并以中文说明。
2 银行业务系统设计
系统包含以下实体,以模拟真实的银行业务系统:
- 客户 (Customers):存储客户个人信息。
- 账户 (Accounts):管理客户账户(如储蓄账户、支票账户)。
- 交易 (Transactions):记录账户的交易(存款、取款、转账)。
- 分行 (Branches):表示银行分行信息。
- 员工 (Employees):管理银行员工。
- 贷款 (Loans):跟踪客户贷款。
- 银行卡 (Cards):管理与账户关联的借记卡/信用卡。
3 ER 图描述
ER 图包括以下实体及其关系:
- 客户:包含 customer_id、first_name、last_name、email、phone、address、date_of_birth 等属性。
- 账户:通过 customer_id 关联客户,包含 account_id、account_type、balance、branch_id、created_at 等属性。
- 交易:通过 account_id 关联账户,包含 transaction_id、amount、transaction_type、transaction_date 等属性。
- 分行:包含 branch_id、name、address 等属性。
- 员工:通过 branch_id 关联分行,包含 employee_id、name、position 等属性。
- 贷款:通过 customer_id 和 account_id 关联客户和账户,包含 loan_id、amount、interest_rate、status 等属性。
- 银行卡:通过 account_id 关联账户,包含 card_id、card_number、card_type、expiry_date 等属性。
关系:
- 一个客户可以有多个账户(1:N)。
- 一个账户可以有多个交易(1:N)。
- 一个分行可以有多个账户和员工(1:N)。
- 一个客户可以有多个贷款(1:N)。
- 一个账户可以有多个银行卡(1:N)。
由于文本限制,我将提供 SQL 建表语句和描述,而非图形化的 ER 图。
![[scheam.sql]]
4 数据生成
使用 Python 的 Faker 库生成测试数据,模拟真实的银行数据。
![[generate_data.py]]
5 后端应用程序
使用 FastAPI 构建后端,提供增删改查、分页查询和搜索功能。
![[main.py]]
6 前端管理界面
使用 React 构建前端管理界面,支持客户管理的增删改查、分页和搜索功能。
![[index.html]]
7 使用方法
7.1 配置 PostgreSQL:
- 安装 PostgreSQL 并创建名为
banking
的数据库。 - 在
generate_data.py
和main.py
中将your_password
替换为你的 PostgreSQL 密码。 - 运行
schema.sql
创建数据库表:psql -U postgres -d banking -f schema.sql
7.2 生成测试数据:
- 安装 Python 依赖:
pip install faker psycopg2-binary
。 - 运行
generate_data.py
生成测试数据:python generate_data.py
- 这将生成 5000 个分行、1000000个客户、20000 个员工、2000000 个账户、100000000 笔交易、50000 笔贷款和 15000 张银行卡。
7.3 运行后端:
- 安装 FastAPI 和 Uvicorn:
pip install fastapi uvicorn
。 - 启动 FastAPI 服务:
uvicorn main:app --reload
- API 地址:
http://localhost:8000
。
7.4 运行前端:
- 将
index.html
保存到本地并在浏览器中打开。 - 或者使用简单 HTTP 服务器运行:
python -m http.server 8080
- 访问地址:
http://localhost:8080
。
7.5 使用管理界面:
- 前端界面支持:
- 查看客户列表(支持分页:上一页/下一页)。
- 按姓名或邮箱搜索客户。
- 通过表单添加新客户。
- 删除客户。
- 后端 API 支持客户、账户和交易的增删改查操作,可扩展前端以管理其他实体。
7.6 API 接口说明:
GET /customers/?page=<int>&per_page=<int>&search=<str>
:分页查询客户,支持搜索。POST /customers/
:创建新客户。GET /customers/{id}
:获取指定客户信息。PUT /customers/{id}
:更新客户信息。DELETE /customers/{id}
:删除客户。- 账户和交易有类似接口。
如果想要看接口的演示请看这篇 Python 银行示例 接口文档。
7.7 扩展应用:
- 为其他实体(如分行、贷款、银行卡)添加 CRUD 界面。
- 实现交易历史、贷款状态跟踪或员工管理等功能。
- 增加身份验证和权限管理以提高安全性。
此方案提供了一个功能完整的银行业务系统,包括真实的数据和基本的管理界面。如需进一步扩展或添加特定功能,请告诉我!